﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IContainerConfigurationManager.cs" company="ELEN 7045 GROUP II">
//   Contributed by E.V.
// </copyright>
// <summary>
//   Contract for ContainerConfigurationManager
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Infrastructure.CrossCutting.IoC
{
    using Microsoft.Practices.Unity;

    /// <summary>
    /// Contract for ContainerConfigurationManager
    /// </summary>
    public interface IContainerConfigurationManager
    {
        /// <summary>
        /// Gets the container configuration.
        /// </summary>
        /// <param name="configurationFileName">Name of the configuration file.</param>
        /// <param name="containerConfigurationSectionName">Name of the container configuration section.</param>
        /// <returns>A configured container</returns>
        IUnityContainer GetContainerConfiguration(string configurationFileName, string containerConfigurationSectionName);

        /// <summary>
        /// Gets the container.
        /// </summary>
        /// <param name="containerFileNameKey">The container file name key.</param>
        /// <returns>A configured container</returns>
        IUnityContainer GetContainer(string containerFileNameKey);
    }
}
